package utils

//
//import (
//	"fmt"
//	"qabx.net/safe-app-center/pkg/config/constants"
//	env "qabx.net/safe-app-center/pkg/config/env"
//	"qabx.net/safe-app-center/pkg/monitor"
//	"strconv"
//	"time"
//)
//
//type NetflowHeartBeat struct {
//}
//
//type Device struct {
//	DeviceId  int64  `json:"deviceId"`
//	Mac       string `json:"mac"`
//	Ip        string `json:"ip"`
//	HeartTime string `json:"HeartTime"`
//}
//
//func (NetflowHeartBeat) Run() {
//	deviceKey := constants.REDIS_KEY_HEART_BEAT_DEVICE
//	heartBeatDeviceLen, _ := TTLOperator.HLen(deviceKey)
//	monitor.NumNetflowTotal.Set(float64(heartBeatDeviceLen))
//
//	deviceList, err := TTLOperator.HGetAll(deviceKey)
//
//	if err != nil {
//		fmt.Println(err)
//	}
//
//	now := time.Now().Format("20060102")
//	redisKeyHeartBeat := constants.REDIS_KEY_HEART_BEAT
//	var NumOnlineNetflow float64 = 0
//
//	for deviceId, _ := range deviceList {
//
//		key := fmt.Sprintf("%s:%s:%v", redisKeyHeartBeat, now, deviceId)
//		redisHeartBeat, err := TTLOperator.ZRevRangeByScore(key, 0, int32(time.Now().Unix()), 1)
//
//		if len(redisHeartBeat) == 0 {
//			continue
//		}
//		if err != nil {
//			fmt.Println(err)
//		} else {
//
//			heartBeat, err := strconv.ParseFloat(redisHeartBeat[0], 64)
//			if err != nil || len(redisHeartBeat) <= 0 {
//				monitor.OnlineNetflow.WithLabelValues(deviceId).Set(0)
//				monitor.TodayLastHeartbeat.WithLabelValues(deviceId).Set(0)
//			} else {
//				if time.Now().Unix()-int64(heartBeat) > env.Options.HeartCronTime*3 {
//					monitor.OnlineNetflow.WithLabelValues(deviceId).Set(0)
//					NumOnlineNetflow = NumOnlineNetflow + 1
//				} else {
//					monitor.OnlineNetflow.WithLabelValues(deviceId).Set(1)
//				}
//				monitor.TodayLastHeartbeat.WithLabelValues(deviceId).Set(heartBeat)
//			}
//
//		}
//	}
//	monitor.NumOnlineNetflow.Set(NumOnlineNetflow)
//	monitor.NumNetflowTotal.Set(float64(len(deviceList)))
//}
